/**
 * 通用工具包
 * @author 超级小富翁
 */
function commonUtil() {
	return {
		isEmpty: function(obj) {
			if(!obj) {
				return true;
			} else if(obj.length == 0) {
				return true;
			}
			return false;
		},
		isNotEmpty: function(obj) {
			return !this.isEmpty(obj);
		},
		/**
		 * 判断传入的数据类型
		 */
		judgeType: function(obj) {
			if(obj === undefined) {
				return "undefined";
			} else if(obj === null) {
				return "null";
			} else if(typeof obj === "number") {
				return "number";
			} else if(typeof obj === "string") {
				return "string";
			} else if(obj.length != undefined) {
				return "array";
			} else if(typeof obj === "object") {
				return "object";
			}
		},
		/**
		 * 合并对象，将两个对象合并成一个对象，当存在相同属性的时候会保留第二个对象的值
		 * @param {Object} obj1
		 * @param {Object} obj2
		 */
		mergeObject: function(obj1, obj2) {
			for(var key in obj2) {
				if(obj1.hasOwnProperty(key)) {
					console.error("合并过程中找到相同属性：" + key + "，第一个对象中的值：" + obj1[key] + "，第二个对象中的值：" + obj2[key]);
				}
				obj1[key] = obj2[key];
			}
			return obj1;
		}

	};
}

// 给js字符串提供一个replaceAll方法
String.prototype.replaceAll = function(s1, s2) {　　
	return this.replace(new RegExp(s1, "gm"), s2);　　
};

// 给数组赋值一个移除元素方法
Array.prototype.remove = function(val) {
	var index = this.indexOf(val);
	if(index > -1) {
		this.splice(index, 1);
	}
};

// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符， 
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 例子： 
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
Date.prototype.Format = function(fmt) {
	var o = {
		"M+": this.getMonth() + 1, //月份 
		"d+": this.getDate(), //日 
		"h+": this.getHours(), //小时 
		"m+": this.getMinutes(), //分 
		"s+": this.getSeconds(), //秒 
		"q+": Math.floor((this.getMonth() + 3) / 3), //季度 
		"S": this.getMilliseconds() //毫秒 
	};
	if(/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
	for(var k in o)
		if(new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
	return fmt;
};